//自己实现事件的监听和触发的一个类

class Events {
    //监听事件
    on(eventName, fn) {
        if (typeof (this.listeners[eventName]) === 'undefined') {
            this.listeners[eventName] = [];
        }
        // console.log(this.listeners)
        this.listeners[eventName].push(fn);
    }

    //触发事件
    emit(eventName, arg) {
        if (typeof (this.listeners[eventName]) === 'undefined') {
            console.log(eventName + " not exists");
            process.exit();
        }
        this.listeners[eventName].forEach(item => {
            item();
        });
    }

    //对象
    listeners = {

    }
}

//实例化对象
let myEvent = new Events();
//调用方法
myEvent.on("test", () => {
    console.log("this is a test");
})
myEvent.emit("test");
myEvent.emit("tes");
